package com.dkm.orproject.dkmoa.service;

import com.dkm.orproject.dkmoa.domain.OaCompany;

import java.util.List;
import java.util.Map;

/**
 *  @ClassName : OaCompangService  //类名
 *  @Description : 公司  //描述
 *  @Author : 石智诚  //作者
 *  @Date: 2020-08-05 13:55  //时间
 */

public interface OaCompangService {
    /**
     * 增加公司
     * @param record 公司的信息
     * @return 是否增加成功
     */
    int insert(OaCompany record);

    /**
     * 根据id查询某一个公司
     * @param pkCompanyId 公司的id
     * @return 公司的信息
     */
    OaCompany selectByPrimaryKey(Long pkCompanyId);
    /**
     * 更新某一个公司的信息
     * @param record 更新以后的信息
     * @return 是否更新成功
     */
    int updateCompanyById(OaCompany record);

    /**
     * 逻辑删除
     * @param pkCompanyId 用户信息的Id
     * @return 是否更新成功
     */
    int updateById(Long pkCompanyId,String personnelName);

    /**
     * 批量物理删除
     * @param list 公司的集合
     * @return 删除的行数
     */
    int deleteAll(List<Long> list);

    /**
     * 查询所有并进行分页
     * @param company 公司的
     * @param page 页面
     * @param limit 数量
     * @param startTime 开始时间
     * @param endTime 结束时间
     * @return 分页好的数据
     */
    List<OaCompany> findAll(OaCompany company, Integer page, Integer limit , String startTime, String endTime);

    /**
     * 总行数
     * @param company 公司模型 用于条件查询
     * @param startTime 开始时间
     * @param endTime 结束
     * @return 总行数
     */
    Long rowCount( OaCompany company, String startTime,String endTime);

    /**
     * 根据id 删除
     * @param pkCompanyId 部门ID
     * @return 影响的行数
     */
    int deleteById(Long pkCompanyId);

    /**
     * 批量逻辑删除
     * @param list 公司的集合
     * @param personnelName 更新人名字
     * @return 删除的行数
     */
    int updateAll(List<Long> list,String personnelName);

    /**
     * 查询所有公司
     * @return
     */
    List<OaCompany> findByAll();

    /** 根据id查询某一个公司
     *
     * @param pkCompanyId
     * @return
     */
    Map<String,Object> find(Long pkCompanyId);

}
